package com.mi.minal.common.util;

import com.mi.minal.module.system.service.DictService;
import com.mi.rule.util.ContextKit;
import com.mi.rule.util.MathKit;
import com.mi.rule.util.RequestKit;
import com.mi.rule.util.StrKit;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

public interface BaseService {

    //当前用户ID
    default String userId() {
        return JwtKit.getUserId(token());
    }

    //当前角色ID
    default List<Object> roleIds() {
        return JwtKit.getRoleIds(token());
    }

    //当前token
    default String token() {
        HttpServletRequest request = RequestKit.request();
        String token = request.getHeader("token");
        return token;
    }


    /**
     * 空返回true
     */
    default boolean isBlank(Object o) {
        return StrKit.isBlank(o);
    }

    /**
     * 非空返回true
     */
    default boolean notBlank(Object o) {
        return !StrKit.isBlank(o);
    }

    /**
     * 字符串加盐
     */
    default String addSalt(String password) {
        String str = password.toUpperCase() + dictService().getValue("system_server_salt", "u123whuhdu1sag22yfw333oqi55hjasd");
        return MathKit.getMD5(str);
    }

    default DictService dictService() {
        return ContextKit.getBean(DictService.class);
    }

}
